package cn.ygh.bbo.user.bean;
import cn.ygh.bbo.common.annotation.Excel;
import cn.ygh.bbo.framerwork.core.BaseEntity;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonIgnore;
import java.math.BigDecimal;
import java.text.*;
import java.util.*;
import lombok.Data;
import org.apache.commons.lang3.builder.*;
/**
* 描述：用户登陆信息
* @author ygh
*/
@TableName("user_login")
@Data
public class UserLogin extends BaseEntity {
    /*数据库字段——start*/
    /**
    * 序号
    */
    @Excel("序号")
    @TableId(type = IdType.AUTO)
    @TableField(value = "id")
    private Integer id;

    /**
    * 用户名
    */
    @Excel("用户名")
    @TableField(value = "username")
    private String username;

    /**
    * 密码
    */
    @Excel("密码")
    @TableField(value = "password")
    private String password;

    /**
    * 创建时间
    */
    @Excel("创建时间")
    @TableField(value = "gmt_create")
    private Date gmtCreate;

    /**
    * 更新时间
    */
    @Excel("更新时间")
    @TableField(value = "gmt_update")
    private Date gmtUpdate;


    /*数据库字段——end*/

    /**
    * 默认值设置
    * @return
    */
    public UserLogin def(){
        return this;
    }

     /*构造函数——start*/
    public UserLogin() {
    }

    public UserLogin(Integer id) {
        this.id=id;
    }

    /**
    *构造函数
    */
    public UserLogin(String username,String password,Date gmtCreate,Date gmtUpdate) {
        this.username=username;
        this.password=password;
        this.gmtCreate=gmtCreate;
        this.gmtUpdate=gmtUpdate;
    }
    /*构造函数——end*/

    /*非数据库字段——start*/
    /**
    * 创建时间开始
    */
    @TableField(exist = false)
    private Date gmtCreateBeginValue;

    /**
    * 创建时间结束
    */
    @TableField(exist = false)
    private Date gmtCreateEndValue;

    /**
    * 更新时间开始
    */
    @TableField(exist = false)
    private Date gmtUpdateBeginValue;

    /**
    * 更新时间结束
    */
    @TableField(exist = false)
    private Date gmtUpdateEndValue;

    /*非数据库字段——end*/

    /**
	 * Hash，同所有字段相加判断
	 */
	@Override
	public int hashCode() {
		if(getId()==null){
            return new HashCodeBuilder()
            .append(getUsername())
            .append(getPassword())
            .append(getGmtCreate())
            .append(getGmtUpdate())
			.toHashCode();
        }
		return new HashCodeBuilder()
			.append(getId())
			.toHashCode();
	}
    /**
	 * 重写，对象是否相同，用ID来判断
	 */
	@Override
	public boolean equals(Object obj) {
		if(!(obj instanceof UserLogin)) {
			return false;
		}
		if(this == obj) {
			return true;
		}
        UserLogin other = (UserLogin)obj;
		return new EqualsBuilder()
			.append(getId(),other.getId())
			.isEquals();
	}
	/**
	 * 转文本
	 */
	@Override
	public String toString() {
		return new ToStringBuilder(this,ToStringStyle.SHORT_PREFIX_STYLE)
			.append(super.toString())
            .append(",Id",getId())
            .append(",Username",getUsername())
            .append(",Password",getPassword())
            .append(",GmtCreate",getGmtCreate())
            .append(",GmtUpdate",getGmtUpdate())
			.toString();

	}

/*
//精简构造 用户登陆信息
UserLogin userLogin = new UserLogin(
            username //用户名
            ,password //密码
            ,gmtCreate //创建时间
            ,gmtUpdate //更新时间
);
*/
}